package com.ht.api.call;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;

import cn.hutool.json.JSONObject;

/**
 * 通用接口的具体业务执行器
 * @author asq
 * @createTime 2024年12月23日 21:13:27
 */
public interface ICall {
	/** 前端参数变量名 */
	public static final String PARAM = "param";
	/** 返回结果变量名 */
	public static final String DATA = "data";
	/** 数据库主键字段名 */
	public static final String MAIN_ID = "main_id";
	
	/**
	 * 是否向前端公开本类
	 * @return
	 */
	public default boolean isOpen() {
		return true;
	}
	
	/**
	 * 任务名称
	 * @return
	 */
	public String getName();
	
	/**
	 * 执行具体业务
	 * @param me 操作人
	 * @param param 前端参数对象
	 * @param config 接口配置
	 * @return
	 */
	public AjaxResult execute(LoginBean me, JSONObject param, JSONObject config);
}
